Generally, the present application is directed to the deployment of computer software, and various embodiments relate more specifically to the deployment of application software modules in which the configuration is described in different types of databases.
Computer software in general is a collection of source code and/or libraries which is compilable or interpretable to be read and executed as instructions to a machine. It can also include machine-readable instructions specifying the results that a section of source code should produce. For example, computer software can include extensible markup language (XML) that defines how a file of hypertext markup language (HTML) should lay out a web page.
Computer software can be compiled or grouped into a software application, which is commonly called a computer program. An information technology (IT) solution can involve multiple stores and software applications. The IT solution's data can be spread between files, glue code, directories, databases, and other systems. Porting an IT solution, or merely its subcomponent software applications, from a test computing environment into the real-world production environment can result in broken links if the ported code points to references in the test environment which are not exactly duplicated in the production environment.
A link is a reference from one portion of source code to another portion of source code, or from one portion of source code to an area where data is stored. A link can also associate data in one part of a database with data in another database. When the source code is managed in a database, a link from one item to another item in the database is often called a key. If the key points to an item in a database external to its own database, then the key is sometimes called a foreign key.
Companies which use large IT solutions spend money and resources to create a change control policy so that software applications on the test system are deployed to the production system with few, if any, broken links. Often, all of the tested configuration is migrated into the production system as opposed to just a few pieces of it, in order to reduce the risk of disruption. In the case of complex applications, months can be spent just testing the configuration to be moved by repeatedly installing it on a setup similar to the production system until all of the broken links can be found.
To alleviate the problem of broken links, the configuration of software applications, including where the links point, can be stored in databases, along with the software code itself. Software developers have used such source code databases in order to help them port a software application from a test environment to a production environment, but there is a need in many cases for greater flexibility when deploying software applications.